package org.cuit.epoch.seon.combat;

public class OrderStatePatternDemo {
    public static void main(String[] args) {
        OrderContext order = new OrderContext();

        // 尝试支付订单
        order.pay(); // 输出: 订单已支付。

        // 尝试发货
        order.ship(); // 输出: 订单已发货。

        // 尝试取消订单
        order.cancel(); // 输出: 订单已发货，无法取消。

        // 尝试再次发货
        order.ship(); // 输出: 订单已发货，无法重复发货。
    }
}
